
// JS 校验工具类
function CheckUtil() {
}

// 校验是否为空(先删除二边空格再验证)
CheckUtil.isNull = function(obj) {
	if (typeof (obj) == "null" || typeof (obj) == "undefined")
		return true;
	else
		return false;
};

/**
 *  函数名称：IsBlank 函数功能：判断给定字符串是否为空 函数参数：str,需要处理的字符串
 */
CheckUtil.isBlank = function(obj) {
	if (!CheckUtil.isNull(obj) && CheckUtil.Trim(obj).length > 0)
		return false;
	else
		return true;
}

// 校验是否全是数字
CheckUtil.isDigit = function(str) {
	var patrn = /^\d+$/;
	return patrn.test(str);
};

// 校验是否是整数
CheckUtil.isInteger = function(str) {
	var patrn = /^([+-]?)(\d+)$/;
	return patrn.test(str);
};

// 校验是否为正整数
CheckUtil.isPlusInteger = function(str) {
	var patrn = /^([+]?)(\d+)$/;
	return patrn.test(str);
};

// 校验是否为负整数
CheckUtil.isMinusInteger = function(str) {
	var patrn = /^-(\d+)$/;
	return patrn.test(str);
};

// 校验是否为浮点数
CheckUtil.isFloat = function(str) {
	var patrn = /^([+-]?)\d*\.\d+$/;
	return patrn.test(str);
};

// 校验是否为正浮点数
CheckUtil.isPlusFloat = function(str) {
	var patrn = /^([+]?)\d*\.\d+$/;
	return patrn.test(str);
};

// 校验是否为负浮点数
CheckUtil.isMinusFloat = function(str) {
	var patrn = /^-\d*\.\d+$/;
	return patrn.test(str);
};

// 校验是否仅中文
CheckUtil.isChinese = function(str) {
	var patrn = /[\u4E00-\u9FA5\uF900-\uFA2D]+$/;
	return patrn.test(str);
};

// 校验是否仅ACSII字符
CheckUtil.isAcsii = function(str) {
	var patrn = /^[\x00-\xFF]+$/;
	return patrn.test(str);
};

// 校验手机号码
CheckUtil.isMobile = function(str) {
	var patrn = /^0?1((3[0-9]{1})|(59)){1}[0-9]{8}$/;
	return patrn.test(str);
};

// 校验电话号码
CheckUtil.isPhone = function(str) {
	var patrn = /^(0[\d]{2,3}-)?\d{6,8}(-\d{3,4})?$/;
	return patrn.test(str);
};

// 校验URL地址
CheckUtil.isUrl = function(str) {
	var patrn = /^http[s]?:\/\/[\w-]+(\.[\w-]+)+([\w-\.\/?%&=]*)?$/;
	return patrn.test(str);
};

// 校验电邮地址
CheckUtil.isEmail = function(str) {
	var patrn = /^[\w-]+@[\w-]+(\.[\w-]+)+$/;
	return patrn.test(str);
};

// 校验邮编
CheckUtil.isZipCode = function(str) {
	var patrn = /^\d{6}$/;
	return patrn.test(str);
};

// 校验合法时间
CheckUtil.isDate = function(str) {
	if (!/\d{4}(\.|\/|\-)\d{1,2}(\.|\/|\-)\d{1,2}/.test(str))
		return false;

	var r = str.match(/\d{1,4}/g);
	if (r == null) {
		return false;
	}
	var d = new Date(r[0], r[1] - 1, r[2]);
	return (d.getFullYear() == r[0] && (d.getMonth() + 1) == r[1] && d
			.getDate() == r[2]);
};

// 校验字符串：只能输入6-20个字母、数字、下划线(常用手校验用户名和密码)
CheckUtil.isString6_20 = function(str) {
	var patrn = /^(\w){6,20}$/;
	return patrn.test(str);
};

/**
 * 函数名称：IsLegality 函数功能：检查字符串的合法性，即是否包含"
 * '字符，包含则返回false;反之返回true 函数参数：obj,需要检测的字符串
 */
CheckUtil.IsLegality = function(obj) {
	var intCount1 = obj.indexOf("\"", 0);
	var intCount2 = obj.indexOf("\'", 0);
	return (intCount1 > 0 || intCount2 > 0) ? false : true;
}

/**
 * 函数名称：IsNumber 函数功能：检测字符串是否全为数字 函数参数：str,需要检测的字符串
 */
CheckUtil.IsNumber = function(str) {
	var number_chars = "1234567890";
	var i;
	for (i = 0; i < str.length; i++) {
		if (number_chars.indexOf(str.charAt(i)) == -1)
			return false;
	}
	return true;
}

/**
 * 函数名称：Trim 函数功能：去除字符串两边的空格 函数参数：str,需要处理的字符串 
 */
CheckUtil.Trim = function(str) {
	return str.replace(/(^\s*)|(\s*$)/g, "");
}

/**
 * 函数名称：LTrim 函数功能：去除左边的空格 函数参数：str,需要处理的字符串
 */
CheckUtil.LTrim = function(str) {
	return str.replace(/(^\s*)/g, "");
}

/**
 *  函数名称：RTrim 函数功能：去除右边的空格 函数参数：str,需要处理的字符串
 */
CheckUtil.RTrim = function(str) {
	return this.replace(/(\s*$)/g, "");
}
